package clases;
import java.util.ArrayList;

import value_objects.VOBola;
import value_objects.VODataJuego;

public class Juego {
	private static int maxBolas = 3; 
	private ArrayList<Punto> bolas;
	private int countBolas;
	
	private static Juego instance = null;
	
	private Juego() {
		bolas = new ArrayList<Punto>(maxBolas);
		countBolas = 0;
	}
	
	public static Juego getInstance() {
		if (instance == null) {
			instance = new Juego();
		}
		return instance;
	}
	
	public int conectar() {
		int retorno;
		if (countBolas < maxBolas) {
			bolas.add(countBolas, new Punto(countBolas*20 +10, 20)); // las bolas arrancan una al lado de la otra
			retorno = countBolas++;
		} else {
			retorno = -1;
		}
		return retorno;
	}
	
	public void coordenadas (int _idBola, int _x, int _y) {
		Punto b = bolas.get(_idBola);
		b.setX(_x);
		b.setY(_y);
	}
	
	synchronized public VODataJuego dataJuego() {
		VOBola[] ret;
		ret = new VOBola[countBolas];
		for (int i = 0; i < countBolas; i++) {
			Punto tmp = bolas.get(i);
			ret[i] = new VOBola(i, tmp.getX(), tmp.getY());
		}
		return new VODataJuego(ret, countBolas);
	}
}
